Bug 608993 - Add gtk_widget_style_attach()
authorMichael Natterer <mitch@gimp.org>
Thu, 4 Feb 2010 15:43:54 +0000 (16:43 +0100)
committerTristan Van Berkom <tristan.van.berkom@gmail.com>
Sun, 4 Apr 2010 00:56:05 +0000 (20:56 -0400)
As replacement for:
widget->style = gtk_style_attach (widget->style, widget->window);

gtk/gtk.symbols
gtk/gtkwidget.c
gtk/gtkwidget.h

index 00440e0466b9dd1a66967f84905a12d6fd161bbf..e09d34a69c8e0ddc854351d1ab6bd228b2f80008 100644 (file)
@@ -5242,6 +5242,7 @@ gtk_widget_show_now
 gtk_widget_size_allocate
 gtk_widget_size_request
 gtk_widget_get_desired_size
+gtk_widget_style_attach
 gtk_widget_style_get G_GNUC_NULL_TERMINATED
 gtk_widget_style_get_property
 gtk_widget_style_get_valist
index 4e0da7c1660dcaffee748e1a800c9f1d6a0970b6..8e9ad8752e6774543c25a27b75702b06a3d71c30 100644 (file)
@@ -6308,6 +6308,32 @@ gtk_widget_get_parent (GtkWidget *widget)
  * see docs/styles.txt
  *****************************************/
 
+/**
+ * gtk_widget_style_attach:
+ * @widget: a #GtkWidget
+ *
+ * This function attaches the widget's #GtkStyle to the widget's
+ * #GdkWindow. It is a replacement for
+ *
+ * <programlisting>
+ * widget->style = gtk_style_attach (widget->style, widget->window);
+ * </programlisting>
+ *
+ * and should only ever be called in a derived widget's "realize"
+ * implementation which does not chain up to its parent class'
+ * "realize" implementation, because one of the parent classes
+ * (finally #GtkWidget) would attach the style itself.
+ *
+ * Since: 2.20
+ **/
+void
+gtk_widget_style_attach (GtkWidget *widget)
+{
+  g_return_if_fail (GTK_IS_WIDGET (widget));
+
+  widget->style = gtk_style_attach (widget->style, widget->window);
+}
+
 /**
  * gtk_widget_has_rc_style:
  * @widget: a #GtkWidget
index 6f4f8f81fa18e704562197b25700d36a940f0a83..ddb855013b18897f9b24a51b3a1a9f1fdcebd5ab 100644 (file)
@@ -1069,11 +1069,13 @@ gboolean     gtk_widget_hide_on_delete  (GtkWidget      *widget);
 
 /* Widget styles.
  */
-gboolean    gtk_widget_has_rc_style       (GtkWidget           *widget);
-void      gtk_widget_set_style         (GtkWidget      *widget,
-                                        GtkStyle       *style);
-void      gtk_widget_ensure_style      (GtkWidget      *widget);
-GtkStyle*  gtk_widget_get_style                (GtkWidget      *widget);
+void        gtk_widget_style_attach       (GtkWidget            *style);
+
+gboolean    gtk_widget_has_rc_style       (GtkWidget            *widget);
+void       gtk_widget_set_style          (GtkWidget            *widget,
+                                           GtkStyle             *style);
+void        gtk_widget_ensure_style       (GtkWidget            *widget);
+GtkStyle *  gtk_widget_get_style          (GtkWidget            *widget);
 
 void        gtk_widget_modify_style       (GtkWidget            *widget,
                                           GtkRcStyle           *style);